class Skeleton(object):
  def __init__(self, service_name):
    self._name = service_name
    self._methods = map()

  def name(self):
    return self._name

  def register_method(self, name, code):
    self._methods[name] = code

  def method_names(self) {
    return self._methods.keys()

  # Abstract
  def _call_method(self, method_code, controller, request):
  	return None

  def call(self, name, controller, request):
    if name not in self._methods:
    	raise RpcException(-1, 'Method not found "%s"' % name)
    return self._call_method(self._methods[name], controller, request)
